/*
 * ServicoColaboradorLocal.java
 *
 * Created on 25 de Agosto de 2007, 10:57
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package br.com.sgpa.servico;

import br.com.sgpa.dominio.Colaborador;
import br.com.sgpa.persistencia.ColaboradorDao;
import br.com.sgpa.persistencia.Dao;
import br.com.sgpa.persistencia.DaoFactory;
import java.util.List;



/**
 *
 * @author Leandro
 */
public class ServicoColaboradorLocal implements ServicoColaborador {
    
    private DaoFactory fabricaDePersistencia = new DaoFactory(); 
    
    /** Creates a new instance of ServicoColaboradorLocal */
    public ServicoColaboradorLocal() {
    }

     public Colaborador efetuarLogin(Colaborador col)
     {    
        try {
            Colaborador cola;
            ColaboradorDao colaboradorDao;
            colaboradorDao = fabricaDePersistencia.criarDaoColaborador();
            cola = colaboradorDao.efetuarLogin(col) ;
            return cola ; 
        } catch (Exception ex) {
            return null;
        } 
     }
    
    public Colaborador carregarColaborador(Colaborador col)
    {
        Colaborador cola;
        ColaboradorDao colaboradorDao;
        colaboradorDao = fabricaDePersistencia.criarDaoColaborador();
        cola = (Colaborador) colaboradorDao.consultarPorId(col.getUsuario());
        return cola ; 
    }
    public boolean verificarDisponibilidade(Colaborador col) {
        Colaborador cola;
        ColaboradorDao colaboradorDao;
        colaboradorDao = fabricaDePersistencia.criarDaoColaborador();
        cola = (Colaborador)colaboradorDao.consultarPorId(col.getUsuario());
        return cola == null ;       
    }

    public void criarColaborador(Colaborador col) {
        fabricaDePersistencia.beginTransaction();
           fabricaDePersistencia.criarDaoColaborador().inserir(col);
        fabricaDePersistencia.commit();
    }

    public void excluirColaborador(Colaborador col) {
        fabricaDePersistencia.beginTransaction();
            fabricaDePersistencia.criarDaoColaborador().excluir(col);
        fabricaDePersistencia.commit();
    }

    public void salvarColaborador(Colaborador col) {
        fabricaDePersistencia.beginTransaction();
            fabricaDePersistencia.criarDaoColaborador().alterar(col);
        fabricaDePersistencia.commit();
    }
    
    public void mudarAutorizacao(Colaborador col)
    {
        salvarColaborador(col);
    }

    public List<Colaborador> listarPorNome(String nome) {
        ColaboradorDao colaboradorDao;
        colaboradorDao = fabricaDePersistencia.criarDaoColaborador();
        return colaboradorDao.listarPorNome(nome) ; 
    }

    public List<Colaborador> listarPorNomeDeUsuario(String nome) {
        ColaboradorDao colaboradorDao;
        colaboradorDao = fabricaDePersistencia.criarDaoColaborador();
        return colaboradorDao.listarPorNomeDeUsuario(nome) ; 
    }
    
}
